/**
 * 转换器
 * <p>
 * 目前实现有2种作用, 简要说明就是将 **计算链** 转换为 **计算单元**
 * <p>
 * 1)
 * 如果计算单元列表内存在计算链引用，为了屏蔽这种计算结构的差异性，
 * 转化器能将相同计算链类型的计算链转为同样计算链类型的计算单元.
 * <p>
 * 2)
 * 由于计算链中计算单元列表的类型是固定的, 执行中不可以出现非兼容类型的计算单元或者计算链。
 * 为了解决这个问题转换器出现了。转换器是一种适配模式，将一个类型不兼容的计算链通过一个转换器的封装变成一个和目标类型相同的计算单元。
 * 例子: 医药费和医药费子单的数据类型是不同的, 但是计算是能兼容的, 在组装的时候就需要转换器将医药费子单计算链转化为医药费的计算链。
 * <p>
 * 说白了就是一个计算链中的所有计算单元必须是和计算链相同，如果是不同类型的计算单元需要建立一个计算链来处理。
 * <p>
 * 如果没听懂建议从头读一遍，应该写的十分清楚了。
 * <p>
 * <p>
 * A: 为什么没有计算单元到计算单元的转换？
 * Q：因为没有这个必要，计算链以及涵盖了计算单元.
 */
package com.pubinfo.passbook.engine.chain.transfer;